/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package op.filtros;

import core.FiltraLigacao;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import op.ContaTelefonica;
import op.Ligacao;

/**
 *
 * @author Jônatas
 */
public class FiltraPorPlano implements FiltraLigacao {

    private Set<String> planos;

    public FiltraPorPlano(Set<String> tipo) {
        this.planos = tipo;
    }

    public ContaTelefonica execute(ContaTelefonica contaOriginal) {

        List<Ligacao> ligacoesOriginais = contaOriginal.getLigacoes();
        List<Ligacao> ligacoesFiltradas = new ArrayList<Ligacao>();

        for (Ligacao lig : ligacoesOriginais) {
            if (lig.getPlanoLigacao() != null && planos.contains(lig.getPlanoLigacao())) {
                ligacoesFiltradas.add(lig);
            }
        }

        ContaTelefonica resposta = new ContaTelefonica(contaOriginal.getContaMensal());
        resposta.setLigacoes(ligacoesFiltradas);
        return resposta;
    }
}
